Understanding RAID

Written by Joshua Moore

June 11, 2007 | 05:25

Tags: #hard-drive #raid #redundancy

RAID10 and RAID0+1 – block level striping plus mirroring

These RAID levels are combinations of RAID0 and RAID1. They provide all the sustained read and write performance of RAID0, most of the random read and write performance of RAID0 and offer the security of RAID1. Another plus point going for it is that neither mirroring nor striping involve complex parity calculations, so the RAID controller need not be particularly expensive.

The main disadvantage is the same as that of RAID1 - 50 percent storage efficiency. While RAID10/01 is cheap where the controller is concerned, the poor space efficiency means that this cost saving can be quickly dissipated when it comes to purchasing drives, especially in larger arrays.

It is a common mistake to think that RAID10 and RAID0+1 are two different terms for the same thing. While these two forms of RAID are similar, and use the same techniques, the order in which they are used is different. Most on-board RAID controllers actually support RAID0+1, even though this is often claimed as RAID10. Where add-in RAID adapters are concerned, support can either be for one or the other, or sometimes both RAID levels.

Understanding RAID RAID10, 0+1, 3, and 4
RAID0+1 is most easily described as a RAID1 of RAID0s, or a mirror of two striped arrays. Given eight disks, the array would be split into two RAID0 arrays of four disks each and then one array would mirror the other. The same eight disks, configured as RAID10, would first be split into four RAID1 arrays and then the controller would then arrange these mirrored arrays into a single RAID0 array, or a stripe of two or more mirrored arrays.

At a glance it appears that there should be no difference between these two RAID configurations, simply different routes to the same destination, and in most ways this is the case. The disk requirements, space efficiency and performance characteristics are the same. The area where the two configurations differ greatly is where fault tolerance is concerned. If four disks are configured as RAID0+1, the fault tolerance is the same as four disks configured in RAID10, two drive failures are allowed before all data is lost. The only difference is which drives can fail. When more than four disks are used, RAID10 clearly takes the lead where data security is concerned.

When eight drives are configured in a RAID0+1 array, disks 1-4 and disks 5-8 are configured as two separate RAID0 arrays which are then mirrored. We know that if one disk in a RAID0 array fails, the entire array is lost, so if disk 1 fails, the entire RAID0 array fails. This leaves disks 5-8 running as a stand-alone RAID0 array with no redundancy, so if one of them fails, kiss goodbye to your data. In this example, the likelihood of a second failure causing data loss is 4/7, or 57 percent.

In an eight disk RAID10 array, disks 1-2, 3-4, 5-6 and 7-8 are configured as RAID1 arrays which are then striped. If disk 1 fails, the array can survive any additional failure other than disk 2. In this array, the likelihood of a second disk failure causing data loss is 1/7, or a mere 14 percent. Obviously, it’s best to replace a failed disk straight away to minimise chances of data loss, but its always possible for another disk to fail when the array is rebuilding, and its far more likely to come out of it unscathed when using RAID10.

Pros
  • No complex parity calculations
  • An inexpensive controller is sufficient for performance
Cons
  • Poor space efficiency


RAID3 & RAID4 – striping with a dedicated parity disk

This level of RAID is relatively uncommon today, as in most situations where RAID3 could be used, RAID5 is a better choice. The exception to this is applications which require a very high sustained read rate, where RAID3 marginally outperforms RAID5. In a home system, this means that you may load game levels faster from RAID3 than RAID5, but that’s about it. Write performance with RAID3 is held back due to the use of a dedicated parity drive, which has to be written to whenever any data is written to the array.

Given that RAID5 usually comes out on top performance-wise, RAID3 is pretty rare these days. RAID3 should technically be cheaper than RAID5, as it is slightly less complex, but because it isn’t widely used it's only available in a handful of very expensive RAID controllers. The exception to this is controllers using the NetCell RAID processor, such as the XFX Revo controller, which is far cheaper than many RAID5 adapters.

Understanding RAID RAID10, 0+1, 3, and 4
RAID3 is unique in that it uses byte level striping as opposed to block level striping. This means that every file is split up amongst the striped drives equally, byte-by-byte, whereas files smaller than the block size in RAID5 or RAID0 are stored on a single drive. This feature of RAID3 is what gives it the added sequential read performance, as all files, no matter how small, are read from every drive. There is a RAID configuration that uses the dedicated parity drive of RAID3, but the block level striping of other RAID levels, though it is even less common than RAID3. Given that this RAID level is half way between RAID3 and RAID5, it’s fitting that it’s called RAID4. RAID4 is very rarely used because there are very few (if any) situations where either RAID3 or RAID5 would not be a better choice.

RAID3 Pros
  • Can sustain one drive failure
  • Sequential read performance better than RAID5
  • NetCell controllers are very inexpensive
RAID3 Cons
  • Byte level striping deteriorates random read and write performance
  • Dedicated parity drive becomes a bottleneck
  • RAID5 is faster and cheaper most of the time

RAID4 Pros
  • Um, it’s different?
RAID4 Cons
  • RAID5 is better in most situations
  • RAID3 is better for the rest
  • It’s difficult to find controllers that support RAID4

Discuss this in the forums
YouTube logo
MSI MPG Velox 100R Chassis Review

October 14 2021 | 15:04